var webpack = require("webpack");
var path = require("path");
var extractTextPlugin = require("extract-text-webpack-plugin");//不将css打包到脚本中，而是独立出来作为.css，然后在页面中<link>引入
var targetPath = "C:/kecherry/kwebpackProject/demo1/js/";
var entryPath = "C:/kecherry/kwebpackProject/demo1/js/src/page/indexPage/";
/*npm config set registry "https://registry.npm.taobao.org"  修改npm配置，改从淘宝镜像进行安装*/
module.exports = {
	/*entry:配置入口文件，可以是数组形式，也可以是对象形式
	  entry:{
		index:"index.js"
	  }
	  entry:[
	  	"index.js"
	  ]
	*/
	entry:{
		index:[entryPath + "./index.js",entryPath + "./main.js"]
	},//[entryPath + "./index.js",entryPath + "./main.js"]
	/*  output:输出文件出口
		path：输出路径，创建一个文件夹如dist作为输出目录
			输出的文件路径是相对于本文件的路径
		filename：输出文件名,可以自己定义，[name]的意思是与入口文件名保持一致，推荐使用[name]
	*/
	output:{
		path:path.resolve(targetPath,"./dist"),
		filename:"[name].min.js",
	},
	/*module:需要加载的模块*/
	module:{
		/*loaders：加载器*/
		/*
			style-loader 中的loader可以省略不写，多个loader之间用"!"进行连接
		*/
		/*
		使用extractTextPlugin时css,sass,style中的loader可以省略不写,并且合并生成的.min.js文件代码量会大大减小，文件中不会包含标签以及其样式代码，
		loader: extractTextPlugin.extract({fallback:'style-loader',use:'css-loader'}),
		而使用一般的
		loader:"style-loader!css-loader!sass-loader"，样式和标签会存在min.js文件中
		*/
		loaders:[
			{
				test:/\.css$/,
				loader:"style!css"
			},
			{
				test:/\.js$/,
				loader:"jsx-loader?harmony"
			},
			{
				test:/\.scss$/,
				// loader:"style-loader!css-loader!sass-loader"
				loader: extractTextPlugin.extract({fallback:'style-loader',use:'css-loader'}), //"style", 'css!sass'这里用了样式分离出来的插件，如果不想分离出来，可以直接这样写 loader:'style!css!sass'
				// exclude: /node_modules/  //暂时感觉这句没用
			},
			//图片文件使用 url-loader 来处理，小于8kb的直接转为base64
			//配置信息的参数“?limit=8192”表示将所有小于8kb的图片都转为base64形式（其实应该说超过8kb的才使用 url-loader 来映射到文件，否则转为data url形式）。
			{
				test:/\.(png|jpg)$/,
				loader:"url-loader?limit=8192"
			}
		]
	},
	/*plugins:webpack插件,完成更多loader无法完成的功能
	*/
	plugins:[
		new webpack.BannerPlugin("created by kecherry on 2017/03/26 !!!"),
		new extractTextPlugin("[name].css")
	],
	resolve:{
		//查找module的话从这里开始查找
        // root: 'E:/github/flux-example/src', //绝对路径
		/*别名配置，配置之后在文件中直接require("a")即可引入a.min.js*/
		alias:{
			"a":"a/a.min.js"
		},
		//自动扩展文件后缀名，意味着我们require模块可以省略不写后缀名
        extensions: ['.js', '.json', '.scss'],
	}
}